package cn.zshprint.serein.service;


import cn.zshprint.serein.entity.Product;
import cn.zshprint.serein.pojo.EsProduct;

import java.util.List;

/**
 * es产品服务
 * 商品搜索管理Service
 * Created by macro on 2018/6/19.
 *
 * @author zshprint
 * @date 2021/07/29
 */
public interface EsProductService {
    /**
     * 导入所有
     * 从数据库中导入所有商品到ES
     *
     * @return int
     */
    int importAll();

    /**
     * 删除
     * 根据id删除商品
     *
     * @param id id
     */
    void delete(Long id);

    /**
     * 创建
     * 根据id创建商品
     *
     * @param id id
     * @return {@link EsProduct}
     */
    EsProduct create(Long id);

    /**
     * 删除
     * 批量删除商品
     *
     * @param ids id
     */
    void delete(List<Long> ids);

    /**
     * 搜索
     * 根据关键字搜索名称或者副标题
     *
     * @param keyword 关键字
     * @return {@link List<EsProduct>}
     */
    List<EsProduct> search(String keyword);

    /**
     * 搜索所有
     *
     * @return {@link List<EsProduct>}
     */
    List<EsProduct> searchAll();

    /**
     * 保存
     *
     * @param product 产品
     * @return {@link Integer}
     */
    Integer save(Product product);

    /**
     * 更新
     *
     * @param product 产品
     * @return {@link EsProduct}
     */
    EsProduct update(Product product);
}

